<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>iicps: xiicps_eeprom_polled_example.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">iicps
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xiicps__eeprom__polled__example_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">xiicps_eeprom_polled_example.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file consists of a polled mode design example which uses the Xilinx PS IIC device and <a class="el" href="struct_x_iic_ps.html" title="The XIicPs driver instance data. ">XIicPs</a> driver to exercise the EEPROM. </p>
<p>The <a class="el" href="group__iicps__v3__0.html#ga71584f1a7e675cde41cfd9d1bd4320b4" title="This function initiates a polled mode send in master mode. ">XIicPs_MasterSendPolled()</a> API is used to transmit the data and <a class="el" href="group__iicps__v3__0.html#ga21bdb2f8a1f09e027aa8b0e9d6648d75" title="This function initiates a polled mode receive in master mode. ">XIicPs_MasterRecvPolled()</a> API is used to receive the data.</p>
<p>The example is tested with a 2Kb/8Kb serial IIC EEPROM (ST M24C02/M24C08). The WP pin of this EEPROM is hardwired to ground in the HW in which this was tested.</p>
<p>The AddressType should be u8 as the address pointer in the on-board EEPROM is 1 bytes.</p>
<p>This code assumes that no Operating System is being used.</p>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>None.</p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who  Date     Changes
<hr/>

1.00a sdm  03/15/10 First release
1.01a sg   04/13/12 Added MuxInit function for initializing the IIC Mux
              on the ZC702 board and to configure it for accessing
              the IIC EEPROM.
                    Updated to use usleep instead of delay loop
1.04a hk   09/03/13 Removed GPIO code to pull MUX out of reset - CR#722425.
2.3     sk       10/07/14 Removed multiple initializations for read buffer.
3.3   Nava 08/08/16 Adopt the Dynamic EEPROM finding support.
</pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ac8a7f7576834a4b28894a539cdf40dd0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiicps__eeprom__polled__example_8c.html#ac8a7f7576834a4b28894a539cdf40dd0">SLV_MON_LOOP_COUNT</a>&#160;&#160;&#160;0x00FFFFFF</td></tr>
<tr class="memdesc:ac8a7f7576834a4b28894a539cdf40dd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slave Monitor Loop Count.  <a href="#ac8a7f7576834a4b28894a539cdf40dd0">More...</a><br /></td></tr>
<tr class="separator:ac8a7f7576834a4b28894a539cdf40dd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ab86bf688196749f6a8a95f6c8eaab3de"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiicps__eeprom__polled__example_8c.html#ab86bf688196749f6a8a95f6c8eaab3de">IicPsEepromPolledExample</a> ()</td></tr>
<tr class="memdesc:ab86bf688196749f6a8a95f6c8eaab3de"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function writes, reads, and verifies the data to the IIC EEPROM.  <a href="#ab86bf688196749f6a8a95f6c8eaab3de">More...</a><br /></td></tr>
<tr class="separator:ab86bf688196749f6a8a95f6c8eaab3de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a840291bc02cba5474a4cb46a9b9566fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiicps__eeprom__polled__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a> (void)</td></tr>
<tr class="memdesc:a840291bc02cba5474a4cb46a9b9566fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function to call the Iic EEPROM polled example.  <a href="#a840291bc02cba5474a4cb46a9b9566fe">More...</a><br /></td></tr>
<tr class="separator:a840291bc02cba5474a4cb46a9b9566fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a9ed2d75ed25daa69e8ddb94fba5a2ede"><td class="memItemLeft" align="right" valign="top">u16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiicps__eeprom__polled__example_8c.html#a9ed2d75ed25daa69e8ddb94fba5a2ede">EepromAddr</a> [] = {0x54,0x55,0}</td></tr>
<tr class="memdesc:a9ed2d75ed25daa69e8ddb94fba5a2ede"><td class="mdescLeft">&#160;</td><td class="mdescRight">Searching for the required EEPROM Address and user can also add their own EEPROM Address in the below array list.  <a href="#a9ed2d75ed25daa69e8ddb94fba5a2ede">More...</a><br /></td></tr>
<tr class="separator:a9ed2d75ed25daa69e8ddb94fba5a2ede"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ac8a7f7576834a4b28894a539cdf40dd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8a7f7576834a4b28894a539cdf40dd0">&#9670;&nbsp;</a></span>SLV_MON_LOOP_COUNT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SLV_MON_LOOP_COUNT&#160;&#160;&#160;0x00FFFFFF</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Slave Monitor Loop Count. </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ab86bf688196749f6a8a95f6c8eaab3de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab86bf688196749f6a8a95f6c8eaab3de">&#9670;&nbsp;</a></span>IicPsEepromPolledExample()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 IicPsEepromPolledExample </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function writes, reads, and verifies the data to the IIC EEPROM. </p>
<p>It does the write as a single page write, performs a buffered read.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if successful else XST_FAILURE.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p class="reference">Referenced by <a class="el" href="xiicps__eeprom__polled__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main()</a>.</p>

</div>
</div>
<a id="a840291bc02cba5474a4cb46a9b9566fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a840291bc02cba5474a4cb46a9b9566fe">&#9670;&nbsp;</a></span>main()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Main function to call the Iic EEPROM polled example. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS if successful else XST_FAILURE.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p class="reference">References <a class="el" href="xiicps__eeprom__polled__example_8c.html#ab86bf688196749f6a8a95f6c8eaab3de">IicPsEepromPolledExample()</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a9ed2d75ed25daa69e8ddb94fba5a2ede"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ed2d75ed25daa69e8ddb94fba5a2ede">&#9670;&nbsp;</a></span>EepromAddr</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u16 EepromAddr[] = {0x54,0x55,0}</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Searching for the required EEPROM Address and user can also add their own EEPROM Address in the below array list. </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
